home *** CD-ROM | disk | FTP | other *** search
/ Exploring Where & Why / Exploring Where & Why.iso / pc / Lib.cst / 00086_DragMemberMgmt.ls < prev    next >
Encoding:
Text File  |  2004-07-11  |  2.0 KB  |  73 lines

  1. --
  2. -- DragMemberMgmt
  3. --
  4.  
  5. property ancestor
  6.  
  7. property memberList  -- a list of members
  8.  
  9. -- the following are all constants:
  10. property appDataMember  -- the member (name) that contains the appList
  11. property useAllDraggables
  12.  
  13. property draggablesCst, targetsCst  -- the casts of the answerKeys
  14.  
  15.  
  16. on new me
  17.   -- set constants:
  18.   set appDataMember = "ActivityPredefines"  -- currently we are using the name of the storage field.
  19.   set useAllDraggables = TRUE
  20.   
  21.   set draggablesCst = the number of castLib "draggables"
  22.   set targetsCst = the number of castLib "baskets"
  23.   
  24.   set ancestor = new (script "ActivityLib")
  25.   
  26.   gatherMemberInfo (me)
  27.   
  28.   return me
  29. end
  30.  
  31.  
  32. on destruct me
  33.   if objectP (ancestor) then destruct (ancestor)
  34.   set ancestor = 0
  35. end
  36.  
  37.  
  38. on useAllDraggables me
  39.   return useAllDraggables
  40. end
  41.  
  42.  
  43. -- gather information on members and castLibs to be used in the match game:
  44.  
  45. on gatherMemberInfo me
  46.   -- get presaved member data if we are in protected mode:
  47.   if the movieName contains ".dxr" or the movieName contains ".exe" then 
  48.     set memberList = value (field appDataMember)
  49.     return
  50.   end if
  51.   
  52.   set draggables = getAvailableMemberList (me, draggablesCst)
  53.   set targets = getAvailableMemberList (me, targetsCst)  -- targets are just here for draggable match checks.
  54.   
  55.   -- check that draggables have corresponding members in targets.
  56.   -- cut out all unusable draggable members:
  57.   if not returnPropMatchList (me, draggables, targets) then
  58.     alert "Not all of the member names of castlib" && draggables && "have matching members in castlib" && targets && "(See the message window for specifics)"
  59.     return 0
  60.   end if
  61.   
  62.   -- add possible animations for these members:
  63.   addAnimations (me, draggablesCst, draggables)
  64.   addAnimations (me, targetsCst, targets)
  65.   
  66.   -- gather the lists of potential draggable members.
  67.   -- (we won't need the list of target members here.)
  68.   set memList = [:]
  69.   addProp (memList, draggablesCst, draggables)
  70.   
  71.   set memberList = memList
  72.   makeField (me, appDataMember, memberList)
  73. end